package com.taotao.complier.calcu.parse;


import com.taotao.complier.calcu.ast.AstNode;

/**
 * 语法器解析器
 *
 *
 * <pre>
 *     Lexer lex = new Lexer("code");
 *     Parser parser = new XXXParser(lex);
 *     AstNode root = parser.parse();
 *     Visitor v= ...;
 *     root.Accept(v);
 *
 * </pre>
 *
 *
 *
 * @author fanbeibei
 * @date 2020/9/5 13:39
 */
public interface Parser<T extends AstNode> {
    /**
     * 解析代码返回抽象语法树根节点
     *
     * @return
     */
    T parse();
}
